sdacha = int(input())
nom = sorted(map(int, input().split()))
while 1 not in nom or 0 in nom:
    print('Необходим номинал в единицу! Или вы ввели номинал 0!\nВведите снова:')
    nom = sorted(map(int, input().split()))

nom = sorted(list(set(nom)))
temp = [[0] * (sdacha + 1) for _ in range(len(nom))]

def pprint(mas):
    for i in mas:
        print(*i, sep='\t')

for i in range(1, sdacha + 1):
    temp[0][i] = 1

for i in range(len(nom)):
    temp[i][0] = 1

for stroka in range(1, len(nom)):
    for stolb in range(1, sdacha + 1):
        if stolb - nom[stroka] < 0:
            temp_znach = 0
        else:
            temp_znach = temp[stroka][stolb - nom[stroka]]

        temp[stroka][stolb] = temp[stroka - 1][stolb] + temp_znach

pprint(temp)